package com.example.temp;

public class Test10 {

    public static void main(String[] args) {

        System.out.println(1>>1);
    }

    /**
     * 输入一个整数，输出该数二进制表示中1的个数。其中负数用补码表示。
     */

    public class Solution {
        public int NumberOf1(int n) {
            //n=n&(n-1)统计二进制中1的个数
            //n=n&(n+1)统计二进制中0的个数
            int count = 0;

            while (n != 0) {
                count++;
                //n&(n-1)最低位1会变成0  00000000000001000&00000000000111 -->00000000000000
                n = n & (n - 1);
            }
            return count;
        }
    }
}
